In a section report (xml-based), a user can connect to a data source, access report controls and sections and set their properties using scripting. Go through the sections below to learn using the scripts in a xml based section report.
To use a script to create a data connection
Go to the Script tab and add a scripting code like the following:
To write the script in Visual Basic.NET
Visual Basic.NET script. Paste in the script editor window. |
Copy Code
|
---|---|
Private Shared m_cnn As System.Data.OleDb.OleDbConnection Public Sub ActiveReport_ReportStart() 'Set up a data connection for the report Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[User Documents folder]\ComponentOne Samples\ActiveReports 8\Data\NWIND.mdb" Dim sqlString As String = "SELECT * FROM products" m_cnn = new System.Data.OleDb.OleDbConnection(connString) Dim m_Cmd As System.Data.OleDb.OleDbCommand = new System.Data.OleDb.OleDbCommand(sqlString, m_cnn) If m_cnn.State = System.Data.ConnectionState.Closed Then m_cnn.Open End If rpt.DataSource = m_Cmd.ExecuteReader End Sub Public Sub ActiveReport_ReportEnd() 'Close the data reader and connection m_cnn.Close End Sub |
To write the script in C#
C# script. Paste in the script editor window. |
Copy Code
|
---|---|
private static System.Data.OleDb.OleDbConnection m_cnn; public void ActiveReport_ReportStart() { //Set up a data connection for the report string m_cnnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[User Documents folder]\ComponentOne Samples\ActiveReports 8\Data\NWIND.mdb"; string sqlString = "SELECT * FROM products"; m_cnn = new System.Data.OleDb.OleDbConnection(m_cnnString); System.Data.OleDb.OleDbCommand m_Cmd = new System.Data.OleDb.OleDbCommand(sqlString, m_cnn); if(m_cnn.State == System.Data.ConnectionState.Closed) { m_cnn.Open(); } rpt.DataSource = m_Cmd.ExecuteReader(); } public void ActiveReport_ReportEnd() { //Close the data reader and connection m_cnn.Close(); } |
Warning: Do not access the Fields collection outside the DataInitialize and FetchData events. Accessing the Fields collection outside of these events is not supported, and has unpredictable results. |
To add scripting to apply alternate colors in the detail section
Go to the Script tab and add a scripting code like the following:
To write the script in Visual Basic.NET
Visual Basic.NET script. Paste in the script editor window. |
Copy Code
|
---|---|
Dim b as boolean = true Sub Detail1_Format if b then Me.Detail1.BackColor = Color.AliceBlue b= false else me.Detail1.BackColor = Color.Cyan b = true End If End Sub |
To write the script in C#
C# script. Paste in the script editor window. |
Copy Code
|
---|---|
bool color = true; public void Detail1_Format() { if(color) { this.Detail1.BackColor = System.Drawing.Color.AliceBlue; color = false; } else { this.Detail1.BackColor = System.Drawing.Color.Cyan; color = true; } } |